package top.lidee.module.aggregat.service;

import com.alipay.api.AlipayApiException;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import top.lidee.common.bean.AliPayResource;
import top.lidee.common.dto.OrderDto;
import top.lidee.common.dto.UserOrderDto;
import top.lidee.common.param.OrderListParam;
import top.lidee.common.param.SettlementParam;
import top.lidee.common.param.TogetherPayParam;
import top.lidee.framework.exception.BusinessCheckException;
import top.lidee.framework.pagination.PaginationResponse;
import top.lidee.framework.web.ResponseObject;
import top.lidee.module.aggregat.domain.AccessAliagent;
import top.lidee.repository.model.MtCart;
import top.lidee.repository.model.MtOrder;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 订单业务接口
 *
 * Created by FSQ
 * CopyRight https://www.lidee.top
 */
public interface ClientAggregatService {


    /**
     * 支付宝带开通当面付接口
     * */
    ResponseObject aliOpenFacetoface(Integer storeId,String userId) throws AlipayApiException;

    /**
     * 支付宝代签产品通用接口
     * */
    ResponseObject aliOpenProducts(AccessAliagent aliagent) throws AlipayApiException;


    /**
     * 查询代开通产品的审核状态
     * */
    ResponseObject statusQuery(String pid, String productCodes) throws AlipayApiException;


    /**
     * 聚合支付扫码入口
     *
     * @param
     * @throws BusinessCheckException
     * @return
     * */
    ResponseObject doScanPay(HttpServletRequest request, TogetherPayParam param) throws Exception;


    /**
     * 聚合支付 微信支付回调接口
     *
     * @param
     * @throws
     * @return
     * */
    void handleWxNotify(HttpServletRequest request);

    /**
     * 聚合支付 支付宝支付回调接口
     *
     * @param
     * @throws
     * @return
     * */
    void handleAlipayNotify(HttpServletRequest request) throws AlipayApiException;

    /**
     * 单个应用授权 二维码生成
     * */
    ResponseObject createAuthQRcode(Integer code, HttpServletResponse response) throws IOException, InterruptedException;


}
